#define  _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//int main()
//{
//	int a ;
//	for (a = 1; a <= 40; a++)
//	{
//		if (a % 2 != 0 && a % 5 != 0)
//		{
//			printf("%d/40,", a);
//		}
//	}
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	long long int a=0,sum= 0;
//	while (scanf("%d", &a) != EOF)
//	{
//		for (; a != 0; a=a/10)
//		{
//			sum += a % 10;
//		}
//		printf("%lld\n", sum);
//
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int i,a, b, c, d, e,f;
//	for (i = 1; i < 10000; i++)
//	{
//		a = 0, b = 0, c = 0, d = 0, e = 0,f=0;
//        if (i % 8 == 1)
//        {
//            a = 1;
//        }
//        if (i / 8 % 8 == 1)
//        {
//            b = 1;
//        }
//        if (i / 8 / 8 % 8 == 7)
//        {
//            c = 1;
//        }
//        if (i % 17 == 4)
//        {
//            d = 1;
//        }
//        if (i / 17 % 17 == 15)
//        { 
//            e = 1;
//        }
//            
//        if (2 * (i / 8 / 8 / 8) == i / 17 / 17)
//        {
//            f = 1;
//        }
//        if (a + b + c + d + e + f == 6)
//        {
//            printf("%d", i);
//            break;
//        }
//           
//	}
//
//	return 0;
//}



//#include <stdio.h>
//void bubble_sort(int* arr, int sz)
//{
//	int i = 0;
//	for (i = 0; i < sz - 1; i++)
//	{
//		int j = 0;
//		for (j = 0; j < sz - i - 1; j++)
//		{
//			if (arr[j] > arr[j + 1])
//			{
//				int tmp = arr[j];
//				arr[j] = arr[j + 1];
//				arr[j + 1] = tmp;
//			}
//		}
//	}
//
//}
//
//
//int main()
//{
//	int arr[4] = {0 };
//	int i = 0;
//	for (i = 0; i < 4; i++)
//	{
//		scanf("%d", &arr[i]);
//	}
//	int sz = sizeof(arr) / sizeof(arr[0]);
//	bubble_sort(arr, sz);
//	for (int i = 0; i < sizeof(arr) / sizeof(arr[0]); i++)
//	{
//		printf("%d ", arr[i]);
//	}
//	return 0;
//}


//#include <stdio.h>
//int main()
//{
//	int N, i, sum=0;
//	scanf("%d", &N);
//	for (i = 1; i <= N; i+=2)
//	{
//		sum += i;
//	}
//	printf("%d", sum);
//
//	return 0;
//}



//#include <stdio.h>
//int main()
//{
//	int N = 0, i = 0, sum = 1;
//	scanf("%d", &N);
//	for (i = 1; i <= N; i++)
//	{
//		sum =sum*i;
//	}
//	printf("%d", sum);
//	return 0;
//}


//#include <stdio.h>
//#include <string.h>
//int main()
//{
//	char a[50]  ;
//	int n = 0,i=0,m;
//	gets(a);
//	printf("%s", a);
//	while (a[i] != '\0')
//	{
//		i++;
//	}
//	for (m = i-1; m >= 0;m--)
//	{
//		putchar(a[m]);
//		
//	}
//	return 0;
//}


//1102
#include <stdio.h>
#include<string.h>
int main()
{
	int n = 0;
	scanf("%d", &n);
	getchar();
	while (n--)
	{
		char a[30];
		int i, tmp, n1, n2, n3,n4;
		n1 = n2 = n3 = n4 = 0;
		gets(a);
		tmp = strlen(a);
		for(i=0;i<tmp;i++)
		{
			if (a[i] >= 'a' && a[i] <= 'z')

				n1 = 1;

			if (a[i] >= 'A' && a[i] <= 'Z')

				n2 = 1;

			if (a[i] >= '0' && a[i] <= '9')

				n3 = 1;

			if (a[i] == '~' || a[i] == '!' || a[i] == '@' || a[i] == '#' || a[i] == '$' || a[i] == '%' || a[i] == '^')

				n4 = 1;

		}

		if (n1 + n2 + n3 + n4 >=3 && (tmp >= 8 && tmp <= 16))

			printf("YES\n");

		else

			printf("NO\n");

	}

	


	return 0;
}